package com.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

public class CollectionDemo1 {
    public static void main(String[] args) {
        /**
         * add(E e)
         * 确保这个集合包含指定的元素(可选操作)。
         * 这里的参数E指的是范型
         * 集合里面只能放引用型类型，是对象都可以，如果是基本数据类型，会触发自动包装
         */
        Collection c = new ArrayList<>();
        c.add("one");
        c.add("two");
        c.add("three");
        c.add("four");
        c.add("five");
        c.add(123);//这里触发了c.add(Integer.valueOf(123));
        System.out.println(c);//[one, two, three, four, five, 123]

        /**
         * size()
         * 返回此集合的元素数量。
         */
        int size = c.size();
        System.out.println("集合的元素数量 = " + size);

        /**
         * isEmpty()
         * 返回 true如果这个集合不包含任何元素。也就是size为0，切记空集和null不是一回事
         */
        boolean empty = c.isEmpty();
        System.out.println("是否为空集 = " + empty);

        /**
         * clear()
         * 删除从这个集合的所有元素(可选操作)。
         */
        c.clear();//[]
        System.out.println(c);
        System.out.println("集合的元素数量 =" + c.size());
        System.out.println("是否为空集 =" + c.isEmpty());


        /**
         * HashSet的特点是不允许重复元素，即集合中的每个元素都是唯一的。
         * 它使用哈希表（Hash Table）作为其底层数据结构，因此具有较高的添加、删除和查找元素的效率。
         */
        HashSet hs = new HashSet();
        hs.add("one");
        hs.add("two");
        hs.add("three");
        hs.add("four");
        hs.add("five");
        boolean flag = hs.add("five");//这里存放不成功
        System.out.println("flag = " + flag);
        System.out.println(hs);//[four, one, two, three, five]

    }
}
